import http from 'wechat-http'
http.baseURL='https://live-api.itheima.net'

// 配置响应拦截器
http.intercept.response = async function ({ data, config }) {
  // 如果状态码为401，则表明token已失效
  if (data.code === 401) {
//如果有这个值，就说明搞的是更新token的接口
    if(config.url.includes('/refreshToken')){
      const yemianzhan = getCurrentPages()
      const last = yemianzhan.pop()
      //直接给他跳回登录页面重新登陆
      return wx.redirectTo({
        url: '/pages/login/index?redirectURL=/'+last.route,
      })
    }
    // 获取应用实例
    const app = getApp()
    // 1.1 调用接口获取新的 token
    const res = await http({
      url: '/refreshToken',
      method: 'POST',
      header: {
        Authorization: 'Bearer ' + app.refreshToken,
      },
    })
    // 检测接口是否调用成功
    if (res.code !== 10000) return wx.utils.toast('更新token失败!')
    // 重新存储新的 token
    app.setToken('token', res.data.token)
    app.setToken('refreshToken', res.data.refreshToken)
    // 1.2 获取到原来接口请求的参数
    config = Object.assign(config, {
      header: {
        // 更新后的 token
        Authorization: 'Bearer ' + res.data.token,
      },
    })
    // 重新发请求
    return http(config)
  }
  // 只保留data数据，其它的都过滤掉
  return data
}
//响应拦截器
// 请求拦截器
http.intercept.request = (options) => {
  const token = getApp().token
  // 指定默认的头信息
  const defaultHeader={}
  // 权限认证
  defaultHeader.Authorization = 'Bearer '+token
  // 合并头信息
  options.header = Object.assign({}, defaultHeader, options.header)
  // 拦截器处理后的请求参数
  return options
}







wx.http = http